package com.epsilon.pos.impuestos.delegator;

import org.eclipse.swt.widgets.Shell;

import com.epsilon.pos.impuestos.events.ImpuestoEventDelegate;
import com.epsilon.pos.impuestos.model.Impuesto;
import com.epsilon.pos.impuestos.view.ImpuestoShell;

public class ImpuestoControl {

	ImpuestoEventDelegate	impuestoEventDelegate;

	private ImpuestoControl( ImpuestoEventDelegate impuestoEventDelegate ) {
		this.impuestoEventDelegate = impuestoEventDelegate;
	}

	public Impuesto getImpuesto() {
		return impuestoEventDelegate.getImpuesto();
	}

	public ImpuestoShell getImpuestoShell() {
		return impuestoEventDelegate.getImpuestoShell();
	}

	public static ImpuestoControl getInstance( Shell parent ) {
		ImpuestoShell impuestoShell = new ImpuestoShell( parent );
		ImpuestoEventDelegate events = new ImpuestoEventDelegate( impuestoShell );

		setEvents( impuestoShell, events );

		return new ImpuestoControl( events );
	}

	private static void setEvents( ImpuestoShell impuestoShell, ImpuestoEventDelegate events ) {
		impuestoShell.addKeyListener( events.getEventoAlPresionarTeclas() );

		impuestoShell.getImpuestoComposite().getBtnAgregar().addSelectionListener( events.getEventoBtnAgregar() );
		impuestoShell.getImpuestoComposite().getBtnAgregar().addKeyListener( events.getEventoAlPresionarTeclas() );

		impuestoShell.getImpuestoComposite().getBtnCancelar().addSelectionListener( events.getEventoBtnCancelar() );
		impuestoShell.getImpuestoComposite().getBtnCancelar().addKeyListener( events.getEventoAlPresionarTeclas() );

		impuestoShell.getImpuestoComposite().getSclPorcentaje().addSelectionListener( events.getEventoSclPorcentaje() );
		impuestoShell.getImpuestoComposite().getSclPorcentaje().addKeyListener( events.getEventoAlPresionarTeclas() );

		impuestoShell.getImpuestoComposite().getTxtDefinicion().addKeyListener( events.getEventoAlPresionarTeclas() );
		impuestoShell.getImpuestoComposite().getTxtNombreCorto().addKeyListener( events.getEventoAlPresionarTeclas() );
	}
}